<?php
namespace module\base\controller;
use houdunwang\request\Request;
use houdunwang\view\View;
use module\base\model\BaseContent;
use module\HdController;
use system\model\Keywords;
/**
 * Created by phpstrom.
 * User:wangyahe
 * Date: 2017/6/14
 * Time: 17:08
 */
class Wx extends HdController
{
	public function index(){
		//?m=base&action=controller/wx/index
//		echo url('wx.index');die();
//		echo 111;die();
//		$baseContent=new BaseContent();
		//获得数据库中的所有数据
//		$field=$baseContent->paginate(1);
		//调用baseContent里面的方法来实现获得数据库中的数据
//		$baseContent=new BaseContent();
//		$field=$baseContent->getAll();
//		var_dump($field);die();
//		Array
//		(
//			[0] => Array
//			(
//				[id] => 2
//            [created_at] => 2017-06-15 10:34:41
//            [updated_at] => 2017-06-15 10:34:41
//            [content] => bb
//		      [keywords] => b
//		      [module_id] => 2
//            [module] => base
//        )
//
//       )
//		View::with('field',$field);
		//获得数据,并进行分页：
		//两个表的关联在basecontent的模型中的keywords的方法中进行关联
//		$basecontent=new BaseContent();
//		$field=$basecontent->getAll();
		$field = BaseContent::paginate(2);
//		p($field->toArray());die;
		//因为这里是将数据传递到自己定义的分配变量的函数中，所以要进入到template（）里面进行参数的设定。
		return $this->template('',compact('field'));
	}
	//添加恢复函数
	public function post(){
		//编辑
		//接受get参数中的id
		$id=Request::get('id');
//		p($id);die;//2
		//到回复的内容表中去寻找有没有id这条数据
		//如果有这个id，就是编辑(找出这条数据),没有这个id，就是添加(新实例出一个模型)
		$baseModel=BaseContent::find($id) ? :new BaseContent();
//		p($baseModel->toArray());die();
//		Array
//		(
//			[id] => 2
//		    [created_at] => 2017-06-15 10:34:41
//            [updated_at] => 2017-06-15 10:34:41
//            [content] => bb
//        )
//如果找不到打印出来的就是空数组
//		Array
//		(
//		)
		//实例化类BaseContent，用在后面的调用save的方法
//		$baseModel=new BaseContent();
		//进行post提交
		if(IS_POST){
			//获得post提交的数据
			$post = Request::post();
//			p($post);die();
			//将 post传递的数据存入回复消息的数据库中
			$baseModel->save($post);
			//添加关键词表，将内容的ID和关键词的进行关联，这里的module_id和id就是恢复的关键字的id
			$post['module_id'] = $baseModel['id'];
			//调用保存关键字的函数，因为这里继承了HdController，而在HdController里面use Wechat;所以这里可以调用WeChat类里面的函数saveKeywords（）了。trait类是直接use一下就可以直接调用里面的方法了
			//这里将post数据传递到关键字的模型中，然后将post数据补充通过地址栏获得的m参数一起保存到数据库中
			$this->saveKeywords($post);
			//进行成功提示
			return $this->setRedirect( url( 'wx.index' ) )->success( '操作成功' );
		}
		//调用Wechat类中assignKeywords(base_content表的主键)方法，并将内容的id传过去
		$this->assignKeywords($id);
		//调用HdController中的方法template；来进行加载模板
		return $this->template('',compact('baseModel'));//-----------------------------这里写错了
	}

	//删除函数
	public function del( ){
		//获得get数据
//		$data=Request::get();
//		p($data);die();
//		Array
//		(
//			[m] => base
//			[action] => controller/wx/del
//		    [id] => 1
//        )
//		Db::table('base_content')->where('id',Request::get('id'))->delete();
//		//进行成功提示
//		return $this->setRedirect(url('wx.index','base'))->success('操作成功');
		//删除的时候要进行两个删除
		//首先获得get参数
		$id=Request::get('id');
//		p($id);die();
		//1.删除回复的内容
		//1.1找到要删除的那条数据
		$model=BaseContent::find($id);
//		dd($model->toArray());die();
		//调用destroy（）删除数据
		$model->destory();
		//2然后删除关键词
		//2.1通过id来找到关键词表中的这条数据
		//这里可以通过$this来调用WeChat勒种的方法delKeywords，因为继承了Hdprocessor；来进行删除
		$this->delKeywords($id);
		//然后进行删除成功的提示
		return $this->setRedirect(url('wx.index'))->success('操作成功');
	}
}